package com.yls.except.util;

import redis.clients.jedis.Jedis;

import java.util.*;

/**
 * Created by xufan on 2016/9/20.
 */
public class RedisTest {
    final static Jedis JEDIS = new Jedis("localhost");

    public static void main(String[] args) {
        Set set = JEDIS.keys("*");
        Iterator it = set.iterator();
        while (it.hasNext()) {
            String key = (String) it.next();
            JEDIS.del(key);
            System.out.println(key);
        }
    }

    /**
     * 获取key对应的value
     * <p>
     * 说明：方法中目前只针对key数据类型为String和hash的情况作了处理，其他数据类型可根据需要进行扩展即可
     *
     * @param key
     * @return
     */
    public static String getValue(String key, Jedis redis) {
        String value = null;
        try {
            //获取key对应的数据类型
            String type = redis.type(key);
            if (type.equals("string")) {
                //get(key)方法返回key所关联的字符串值
                value = redis.get(key);
                System.out.println(key + ":" + value);
            }
            if (type.equals("hash")) {
                //一下方法仅适用于list.size=1时，否者value将取集合中最后一个元素的值
                List<String> list = redis.hvals(key);//hvals(key)返回哈希表 key 中所有域的值
                //Set<String> set = redis.hkeys(key);
                Iterator<String> it = list.iterator();
                while (it.hasNext()) {
                    value = it.next();
                    System.out.println(key + ":" + value);
                }
            }
            if (type.equals("list")) {
            }
            if (type.equals("set")) {
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return value;
    }
}
